home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / SERIE_DM / DM_105 / DM_105.MSA / SUPER.GFA (.txt) < prev   
GFA-BASIC Atari  |  1987-04-22  |  12KB  |  610 lines

  1. ' ## INLINE:
  2. ' $0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  3. ' $0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  4. ' $0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  5. ' $0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  6. ' $0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  7. ' $0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  8. ' $0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  9. ' $0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  10. ' $0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  11. ' $0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  12. ' $00a0: 00 00 00 00 00 00 00 00 00 00 00 00 
  13. ' 172  Bytes.
  14. INLINE dpal%,172
  15. init
  16. ininew
  17. g32
  18. liny("\bitmast2")
  19. eff
  20. aff
  21. VOID INP(2)
  22. ' --------------- PROGRAMME PRINCIPALE ------------
  23. menu
  24. '
  25. PROCEDURE menu
  26. menu:
  27.   digit("\DATA2.BIT",136690,9)
  28.   liny("\BITMAST3")
  29.   eff
  30.   aff
  31.   joue
  32.   CLR t%,ti%,a%,cc%,disk!
  33. test:
  34.   REPEAT
  35.     scroll
  36.     ink
  37.     INC cc%
  38.     IF cc%=625
  39.       CLR cc%
  40.       joue
  41.     ENDIF
  42.   UNTIL i$<>""
  43.   ii%=VAL(i$)
  44.   IF ii% AND ii%<4
  45.     mix
  46.   ENDIF
  47.   GOTO test
  48. RETURN
  49. '
  50. PROCEDURE mix
  51.   ii$=STR$(ii%+1)
  52.   n$="\MIX"+ii$
  53.   nb$=n$+".BIT"
  54.   disk
  55. disk:
  56.   IF EXIST(nb$)<>0
  57.     bm
  58.     IF ii$="2"
  59.       GOSUB st1
  60.     ENDIF
  61.     IF ii$="3"
  62.       GOSUB st2
  63.     ENDIF
  64.     IF ii$="4"
  65.       GOSUB st3
  66.     ENDIF
  67.     digit(nb$,l%,10)
  68.     liny(n$)
  69.     eff
  70.     aff
  71.     joue
  72.     CLR please!
  73.     att
  74.   ELSE
  75.     IF please!=0
  76.       please
  77.     ENDIF
  78.     att
  79.     GOTO disk
  80.   ENDIF
  81.   ii$="1"
  82.   disk
  83. reload:
  84.   IF EXIST("\BITMAST3.CPT")=0
  85.     IF please!=0
  86.       please
  87.     ENDIF
  88.     att
  89.     GOTO reload
  90.   ENDIF
  91.   CLR please!
  92.   bm
  93.   GOTO menu
  94. RETURN
  95. PROCEDURE disk
  96.   CLS
  97.   bm
  98.   CLS
  99.   bm
  100.   liny("DISK")
  101.   aff
  102. RETURN
  103. PROCEDURE please
  104.   please!=-1
  105.   PRINT AT(1,20)
  106.   ce("PLEASE INSERT DISK "+ii$)
  107.   bm
  108. RETURN
  109. '
  110. ' ------------------------- INITIALISATION ----------------
  111. '
  112. > PROCEDURE init
  113.   RESERVE 150000
  114.   FOR q%=6 TO 0 STEP -1
  115.     VSYNC
  116.     VSYNC
  117.     SETCOLOR 0,q%,q%,q%
  118.     SETCOLOR 1,0,q%,0
  119.     SETCOLOR 2,0,q%,0
  120.   NEXT q%
  121.   CLS
  122.   SPOKE &H484,2
  123.   DEFBYT "q,z"
  124.   rez%=XBIOS(4)
  125.   x3%=XBIOS(3)
  126.   esc$=CHR$(27)
  127.   FOR n%=&HFF8240 TO &HFF825F
  128.     basepal$=basepal$+CHR$(PEEK(n%))
  129.   NEXT n%
  130.   VOID XBIOS(5,L:-1,L:-1,W:0)
  131.   OUT 4,18
  132.   HIDEM
  133.   vid$=STRING$(160,0)
  134.   DIM xb2%(8064)
  135.   xb2%=(VARPTR(xb2%(0))+255) AND &HFFFF00
  136.   xb3%=XBIOS(3)
  137.   VOID XBIOS(5,L:xb3%,L:xb2%,W:-1)
  138.   CLS
  139.   VOID XBIOS(5,L:xb2%,L:xb3%,W:-1)
  140.   fade
  141. RETURN
  142. > PROCEDURE ininew
  143.   uncode("DATABASE")
  144.   WAVE 0,0
  145.   FOR i%=1 TO 841
  146.     READ a$
  147.     routine$=routine$+CHR$(VAL("&"+a$))
  148.   NEXT i%
  149.   DATA 60,1A,0,0,3,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  150.   DATA 0,0,0,0,0,0,0,0,0,2,0,0,0,7,70,0,0,0,0,3
  151.   DATA 48,E7,E0,E0,20,3A,FF,F6,C,80,0,0,0,3,6D,34,C,80,0,0
  152.   DATA 0,10,6E,2C,57,80,E3,80,41,FA,0,40,20,BA,FF,D2,41,FA,0,D6
  153.   DATA 48,7A,0,20,3F,30,0,0,3F,3C,0,1,3F,3C,0,0,3F,3C,0,1F
  154.   DATA 4E,4E,DF,FC,0,0,0,C,4C,DF,7,7,4E,75,0,7C,7,0,48,E7
  155.   DATA E0,E0,42,40,22,7A,FF,A2,45,FA,0,4,10,39,12,34,56,78,52,92
  156.   DATA 41,FB,0,B6,32,3C,9,0,34,3C,A,0,82,28,1,0,84,28,2,0
  157.   DATA 91,C8,3,88,88,0,5,88,88,0,B3,D2,67,E,4C,DF,7,7,8,B9
  158.   DATA 0,5,0,FF,FA,F,4E,73,2F,39,0,0,4,A2,4,B9,0,0,0,2E
  159.   DATA 0,0,4,A2,3F,3C,0,D,3F,3C,0,1A,4E,4E,58,8F,23,DF,0,0
  160.   DATA 4,A2,13,FC,0,0,FF,FF,FA,7,13,FC,0,8,FF,FF,88,0,13,FC
  161.   DATA 0,0,FF,FF,88,2,13,FC,0,9,FF,FF,88,0,13,FC,0,0,FF,FF
  162.   DATA 88,2,13,FC,0,A,FF,FF,88,0,13,FC,0,0,FF,FF,88,2,4C,DF
  163.   DATA 7,7,8,B9,0,5,0,FF,FA,F,4E,73,0,CD,0,9A,0,7B,0,66
  164.   DATA 0,58,0,4D,0,44,0,3D,0,38,0,33,0,2F,0,2C,0,29,0,26
  165.   DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  166.   DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,A,A,A,A
  167.   DATA A,A,A,A,A,A,A,C,A,C,A,A,A,C,A,C,C,C,C,C
  168.   DATA A,C,C,C,C,C,C,C,C,D,C,D,D,C,D,D,D,D,C,C
  169.   DATA D,D,D,D,D,C,D,D,D,D,D,D,D,D,C,C,D,C,D,D
  170.   DATA D,D,D,D,E,E,D,E,C,E,E,D,E,E,E,E,D,E,E,E
  171.   DATA D,D,E,E,D,D,E,E,E,E,E,E,D,D,D,D,E,E,E,E
  172.   DATA E,E,D,E,E,E,E,E,E,E,E,E,F,F,E,F,F,F,F,F
  173.   DATA F,F,F,E,E,E,F,F,E,E,E,E,E,E,F,F,F,F,F,F
  174.   DATA F,F,E,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F
  175.   DATA F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F
  176.   DATA F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F
  177.   DATA F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F
  178.   DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  179.   DATA 0,0,0,0,0,0,0,0,0,0,0,0,7,8,7,8,8,9,9,8
  180.   DATA 9,A,9,0,A,4,9,B,B,7,A,7,7,7,7,8,A,8,8,9
  181.   DATA A,9,A,A,9,6,A,7,7,A,7,9,8,9,A,B,A,9,A,A
  182.   DATA A,C,B,B,A,B,B,B,A,A,C,C,B,C,C,C,C,C,B,C
  183.   DATA 8,8,C,9,C,9,A,C,9,A,A,A,D,B,B,B,C,C,B,B
  184.   DATA D,D,B,C,C,C,C,C,D,D,D,D,C,C,C,C,C,D,D,C
  185.   DATA D,D,D,D,D,D,D,D,0,9,D,A,A,A,B,B,B,B,B,D
  186.   DATA D,D,C,C,E,E,E,E,E,E,C,C,D,D,D,D,D,D,E,D
  187.   DATA D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,E,E,E,E
  188.   DATA E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E
  189.   DATA E,E,E,E,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F
  190.   DATA F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,0,0,3,28
  191.   DATA 0
  192. RETURN
  193. > PROCEDURE bar
  194.   CLR z%
  195.   ADD zz%,2
  196.   zz%=zz% MOD 86
  197.   REPEAT
  198.     SETCOLOR 1,CARD{dpal%+zz%+z%}
  199.     ADD z%,2
  200.   UNTIL z%=86
  201.   SDPOKE &HFF8240,0
  202. RETURN
  203. '
  204. ' -------------------- UTILITAIRES -------------------
  205. '
  206. > PROCEDURE liny(i$)
  207.   i$=i$+".CPT"
  208.   OPEN "I",#1,i$
  209.   tny
  210.   CLOSE
  211. RETURN
  212. > PROCEDURE tny
  213.   DIM bloc1%(5000),bloc2%(5000)
  214.   LOCAL z%
  215.   res_fic%=INP(#1)
  216.   IF res_fic%>2
  217.     FOR i%=1 TO 4
  218.       a%=INP(#1)
  219.     NEXT i%
  220.   ENDIF
  221.   pal$=""
  222.   FOR i%=1 TO 32
  223.     pal$=pal$+CHR$(INP(#1))
  224.   NEXT i%
  225.   lg1%=INP(#1)*256+INP(#1)
  226.   lg2%=INP(#1)*256+INP(#1)
  227.   adr_bloc1%=VARPTR(bloc1%(0))
  228.   BGET #1,adr_bloc1%,lg1%
  229.   adr_bloc2%=VARPTR(bloc2%(0))
  230.   BGET #1,adr_bloc2%,2*lg2%
  231.   IF res_fic%>2
  232.     SUB res_fic%,3
  233.   ENDIF
  234.   d0%=0
  235.   d3%=0
  236.   a2%=adr_bloc1%
  237.   a3%=XBIOS(3)
  238.   d2%=adr_bloc2%
  239.   WHILE d3%<>lg1%
  240.     d1%=BYTE{a2%+d3%}
  241.     IF d1%>1
  242.       INC d3%
  243.       IF d1%>127
  244.         d1%=d1%-256
  245.       ENDIF
  246.     ELSE
  247.       a0%=a2%+d3%+1
  248.       z%=BYTE{a0%}*256+BYTE{a0%+1}
  249.       ADD d3%,3
  250.       IF d1%=1
  251.         d1%=-z%
  252.       ELSE
  253.         d1%=z%
  254.       ENDIF
  255.     ENDIF
  256.     IF d1%>=0
  257.       REPEAT
  258.         CARD{a3%+d0%}=CARD{d2%}
  259.         @suite
  260.         DEC d1%
  261.       UNTIL d1%=0
  262.       ADD d2%,2
  263.     ELSE
  264.       REPEAT
  265.         CARD{a3%+d0%}=CARD{d2%}
  266.         ADD d2%,2
  267.         @suite
  268.         INC d1%
  269.       UNTIL d1%=0
  270.     ENDIF
  271.   WEND
  272.   ERASE bloc1%(),bloc2%()
  273. RETURN
  274. PROCEDURE suite
  275.   ADD d0%,&HA0
  276.   IF d0%>=&H7D00
  277.     SUB d0%,&H7CF8
  278.     IF d0%>=&HA0
  279.       SUB d0%,&H9E
  280.     ENDIF
  281.   ENDIF
  282. RETURN
  283. '
  284. > PROCEDURE digit(n$,taille%,freq%)
  285.   mem%=MALLOC(-1)
  286.   IF mem%<taille%
  287.     taille%=mem%
  288.     CLS
  289.     bm
  290.     CLS
  291.     bm
  292.     PRINT AT(1,11)
  293.     ce("WARNING!")
  294.     PRINT
  295.     ce("MEMORY TOO LOW - DIGIT TRUNCATED")
  296.     bm
  297.   ENDIF
  298.   son%=MALLOC(taille%)
  299.   OPEN "i",#1,n$
  300.   BGET #1,son%,taille% ! CHARGEMENT DU SON A L'ENDROIT RESERVE
  301.   CLOSE
  302.   debut%=V:routine$+28
  303.   fin%=V:routine$+32
  304.   vitesse%=V:routine$+36
  305.   LPOKE debut%,son% ! ON POKE L'ADRESSE DE DEBUT DU SON
  306.   LPOKE fin%,son%+taille% ! ON POKE L'ADRESSE DE FIN DU SON
  307.   LPOKE vitesse%,freq% ! ON POKE LA VITESSE D'EXECUTION DU SON
  308. RETURN
  309. > PROCEDURE joue
  310.   routine#=V:routine$+40
  311.   CALL routine#
  312.   VOID MFREE(son%)
  313. RETURN
  314. '
  315. > PROCEDURE fade
  316.   CLS
  317.   PRINT AT(1,11)
  318.   ce("JUST WAIT")
  319.   PRINT
  320.   ce("LOADING & UNPACKING")
  321.   bm
  322.   FOR q|=0 TO 7
  323.     SETCOLOR 15,q|,q|,q|
  324.     PAUSE 3
  325.     VSYNC
  326.   NEXT q|
  327. RETURN
  328. PROCEDURE eff
  329.   b1%=XBIOS(2)+16000
  330.   FOR q|=0 TO 100
  331.     VSYNC
  332.     BMOVE V:vid$,b1%-q|*160,160
  333.     BMOVE V:vid$,b1%+q|*160,160
  334.     ink
  335.   NEXT q|
  336. RETURN
  337. > PROCEDURE aff
  338.   pal(pal$)
  339.   FOR q|=0 TO 100
  340.     VSYNC
  341.     BMOVE XBIOS(3)+q|*160,XBIOS(2)+q|*160,160
  342.     BMOVE XBIOS(3)+32000-q|*160,XBIOS(2)+32000-q|*160,160
  343.     ink
  344.   NEXT q|
  345. RETURN
  346. '
  347. > PROCEDURE ink
  348.   i$=INKEY$
  349.   IF i$=esc$ OR i$=" "
  350.     VOID XBIOS(38,L:LPEEK(4))
  351.   ENDIF
  352. RETURN
  353. > PROCEDURE bm
  354.   SWAP xb2%,xb3%
  355.   VOID XBIOS(5,L:xb2%,L:xb3%,-1)
  356. RETURN
  357. > PROCEDURE ce(a$)
  358.   LOCAL x#
  359.   ll#=LEN(a$)
  360.   x#=((XBIOS(4)+1)*40-ll#)/2
  361.   PRINT TAB(x#);a$
  362. RETURN
  363. > PROCEDURE att
  364.   REPEAT
  365.   UNTIL INKEY$="" AND MOUSEK=0
  366.   REPEAT
  367.   UNTIL INKEY$<>"" OR MOUSEK
  368. RETURN
  369. > PROCEDURE pal(x$)
  370.   VOID XBIOS(6,L:VARPTR(x$))
  371. RETURN
  372. '
  373. > PROCEDURE g32
  374.   liny("\FONTS")
  375.   DIM alf$(250)
  376.   CLR z|
  377.   FOR y%=0 TO 5
  378.     FOR x%=0 TO 9
  379.       GET x%*32,y%*32,x%*32+7,y%*32+30,alf$(z|)
  380.       GET x%*32+8,y%*32,x%*32+15,y%*32+30,alf$(z|+1)
  381.       GET x%*32+16,y%*32,x%*32+23,y%*32+30,alf$(z|+2)
  382.       GET x%*32+24,y%*32,x%*32+31,y%*32+30,alf$(z|+3)
  383.       ADD z|,4
  384.     NEXT x%
  385.   NEXT y%
  386.   dpal$=pal$
  387. RETURN
  388. PROCEDURE scroll
  389.   VSYNC
  390.   BMOVE xb2%+160*167,xb2%+160*167-8,5120
  391.   BMOVE V:vid$,xb2%+160*167-8,8
  392.   PUT 304,167,alf$(a%+ti%)
  393.   INC ti%
  394.   IF ti%=4
  395.     CLR ti%
  396.     INC t%
  397.     t%=t% MOD lof%
  398.     a%=(ASC(MID$(t$,t%,1))-32)*4
  399.   ENDIF
  400.   PUT 312,167,alf$(a%+ti%)
  401.   bm
  402. RETURN
  403. '
  404. PROCEDURE uncode(code$)
  405.   code%=LEN(code$)
  406.   DIM c%(code%)
  407.   FOR q%=1 TO code%
  408.     c%(q%)=ASC(MID$(code$,q%,1))
  409.   NEXT q%
  410.   cod%=LEN(cod$)+2
  411.   OPEN "I",#1,"\DIGIT.TXT"
  412.   lof%=LOF(#1)
  413.   t%=MALLOC(lof%)
  414.   BGET #1,t%,lof%
  415.   CLOSE
  416.   CLR m%
  417.   FOR q%=lof% TO 0 STEP -1
  418.     BYTE{t%+q%}=BYTE{t%+q%} XOR c%(m%)
  419.     INC m%
  420.     m%=(m% MOD code%)+1
  421.   NEXT q%
  422.   t$=SPACE$(lof%)
  423.   BMOVE t%,V:t$,lof%
  424.   VOID MFREE(t%)
  425. RETURN
  426. PROCEDURE st1
  427.   CLS
  428.   SETCOLOR 15,2,2,6
  429.   PRINT
  430.   ce("IMAGINATION")
  431.   ce("CODED BY JOJO")
  432.   ce("DIGITALISED BY JOJO")
  433.   ce("WITH ST REPLAY4")
  434.   ce("GRAPHIX BY YOYO")
  435.   ce("            ")
  436.   ce("THIS DEMO WAS DIGITALISED IN 20HZ")
  437.   ce("THE SOUND QUALITY IS VERY VERY GOOD")
  438.   ce("THE DATA FILE IS ABOUT 740 KO")
  439.   ce("THE BIG PROBLEM WAS FOUND A GOOD MUSIC")
  440.   ce("WITH A NICE SOUND")
  441.   ce("                  ")
  442.   ce("I SAY A BIG HELLO TO THE CAREBEARS")
  443.   ce("OUR FAVOURITE GROUP...")
  444.   ce("AFTER THE OVERLANDERS OF COURSE.")
  445.   ce("                  ")
  446.   ce("THE LOADING IS A BIT LONG ISN'T IT ??")
  447.   ce("BUT DON'T REMEMBER,")
  448.   ce("THIS DEMO WAS WROTE IN GFA BASIC 3.03")
  449.   ce("              ")
  450.   ce("TO QUIT OR REBOOT THE DEMO PRESS RESET")
  451.   bm
  452.   VOID INP(2)
  453.   eff
  454.   liny("\mix2")
  455.   aff
  456.   DIM a%(2000),b%(5000)
  457.   code%=VARPTR(a%(0))
  458.   sample%=VARPTR(b%(0))
  459.   BLOAD "bascode.exe",code%
  460.   start%=code%+28
  461.   BLOAD nb$,sample%
  462.   PAUSE 4
  463.   speed%=4
  464. re:
  465.   y#=1399
  466.   length%=79685
  467.   GOSUB music
  468.   GOSUB music
  469.   length%=549749
  470.   GOSUB music
  471.   y#=391720
  472.   length%=159428
  473.   GOSUB music
  474.   GOSUB music
  475.   length%=339899
  476.   GOSUB music
  477.   GOSUB music
  478.   y#=391720
  479.   length%=159428
  480.   GOSUB music
  481.   GOTO re
  482. RETURN
  483. PROCEDURE st2
  484.   CLS
  485.   SETCOLOR 15,2,2,6
  486.   ce("FORTY")
  487.   ce("              ")
  488.   ce("CODED BY  JOJO")
  489.   ce("DIGITALISATED BY JOJO, AGAIN")
  490.   ce("MUSIC : PHIL COLLINS")
  491.   ce("I THINK HIS BEST SONG.")
  492.   ce("                ")
  493.   ce("DATA FILE IS ABOUT 740 KO ")
  494.   ce("THE SPEED IS 15 HZ")
  495.   ce("THE SOUND IS LESS THAN IMAGINATION DEMO")
  496.   ce("BUT VERY COOL FOR A GFA PROGRAM..")
  497.   ce("                ")
  498.   ce("IN FRENCH I SAY ....")
  499.   ce("JOYEUX NOEL ET BONNE ANNEE 90 A TOUS ")
  500.   ce("  GERONIMMOOOOOOOOOOOOOOO !!!!!!")
  501.   ce("                                  ")
  502.   ce("I FORGET A GOOD FRIEND")
  503.   ce("DOGUE DE MAUVE")
  504.   ce("THANKS A LOT MAN FOR YOUR HELP")
  505.   ce("DOGUE IS VERY VERY VERY GOOD IN GFA")
  506.   ce("THANKS FOR YOUR SCROLL....")
  507.   ce("                          ")
  508.   ce("IF YOU WANT TO QUIT PRESS RESET")
  509.   bm
  510.   VOID INP(2)
  511.   eff
  512.   liny("\mix3")
  513.   aff
  514.   DIM a%(2000),b%(5000)
  515.   code%=VARPTR(a%(0))
  516.   sample%=VARPTR(b%(0))
  517.   BLOAD "bascode.exe",code%
  518.   start%=code%+28
  519.   BLOAD nb$,sample%
  520.   PAUSE 4
  521.   speed%=3
  522. ra:
  523.   y#=284
  524.   length%=321832
  525.   GOSUB music
  526.   y#=250593
  527.   length%=71523
  528.   GOSUB music
  529.   GOSUB music
  530.   length%=143003
  531.   GOSUB music
  532.   y#=357825
  533.   length%=35771
  534.   GOSUB music
  535.   GOSUB music
  536.   GOSUB music
  537.   GOSUB music
  538.   GOSUB music
  539.   GOSUB music
  540.   GOSUB music
  541.   length%=411177
  542.   GOSUB music
  543.   y#=483023
  544.   length%=285979
  545.   GOSUB music
  546.   GOSUB music
  547.   GOSUB music
  548.   GOTO ra
  549. RETURN
  550. PROCEDURE st3
  551.   CLS
  552.   SETCOLOR 15,2,2,6
  553.   ce("MICHAEL MIX")
  554.   ce("           ")
  555.   ce("WAOUUUU THE COOL BIT MASTERS DEMO..")
  556.   ce("EVERYBODY THINKS IT'S THE BEST..")
  557.   ce("SO, LET ME PRESENT YOU THE MICKAEL MIX")
  558.   ce("    ")
  559.   ce("THE DATA FILE IS ABOUT 700 KO")
  560.   ce("THE SPEED 10HZ ")
  561.   ce("SO, THE SOUND IS LESS THAN FORTY DEMO,")
  562.   ce("BUT IT'S LONGER THAN THE REST")
  563.   ce("3 MINUTES 15 SECONDES... COOL NO ????")
  564.   ce("     ")
  565.   ce("CODED BY JOJO")
  566.   ce("DIGITALISED BY JOJO")
  567.   ce("MUSIC, MICHAEL JACKSON")
  568.   ce("VOICE : STAR TREK, MISSION IMPOSSIBLE,")
  569.   ce(" LULU, DUCH AND COLUCHE")
  570.   ce("REMIX BY JOJO")
  571.   ce("              ")
  572.   ce("A OTHER VERSION OF MICKAEL MIX IS READY,")
  573.   ce("IF YOU WANT TO SEE IT, CONTACT US...")
  574.   ce("                 ")
  575.   ce("SORRY BUT IF YOU WANT TO QUIT :   RESET")
  576.   bm
  577.   VOID INP(2)
  578.   eff
  579.   liny("\mix4")
  580.   aff
  581.   DIM a%(2000),b%(5000)
  582.   code%=VARPTR(a%(0))
  583.   sample%=VARPTR(b%(0))
  584.   BLOAD "bascode.exe",code%
  585.   start%=code%+28
  586.   BLOAD nb$,sample%
  587.   PAUSE 4
  588.   speed%=2
  589. debut3:
  590.   y#=0
  591.   length%=460045
  592.   GOSUB music
  593.   y#=73116
  594.   length%=528593
  595.   GOSUB music
  596.   y#=521409
  597.   length%=80300
  598.   GOSUB music
  599.   GOSUB music
  600.   length%=127866
  601.   GOSUB music
  602.   GOTO debut3
  603. RETURN
  604. PROCEDURE music
  605.   LPOKE start%+2,sample%+y#
  606.   LPOKE start%+6,length%
  607.   LPOKE start%+10,speed%
  608.   CALL start%
  609. RETURN
  610.